home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_08_12 / 8n12043a < prev    next >
Text File  |  1990-10-14  |  2KB  |  86 lines

  1. /*
  2.  *  BLOCK.H
  3.  *
  4.  *  common references for block device driver
  5.  */
  6.  
  7.  
  8. /*
  9.  *  status bits for the return code
  10.  */
  11.  
  12. #define UNKNOWN_COMMAND 3
  13. #define ERROR       0x8000
  14. #define DONE        0x0100
  15. #define BUSY        0x0200
  16. #define BLK_NOT_FOUND   8
  17.  
  18. #define MAX_BLK     256 /* 256 blocks       */
  19. #define BLK_SIZE    256 /* 256 bytes/block  */
  20.  
  21. /*------------- global variables -------------*/
  22.  
  23.                 /* the transfer address specified in
  24.                    the request header */
  25. extern int far  *transfer;
  26.                 /* the count specified in the request header */
  27. extern int  count;
  28.                 /* counter */
  29. extern int  k1; 
  30.                 /* counter */
  31. extern int  k2;
  32.                 /* offset for normalization */
  33. extern unsigned offset;
  34.                 /* source pointer */
  35. extern int far  *source;
  36.                 /* destination pointer */
  37. extern int far  *dest;
  38.                 /* command specified in request header */
  39. extern char command;
  40.                 /* start block specified in request header */
  41. extern int  start;
  42.  
  43. extern struct parm_block    /* parameter block          */
  44.     {
  45.     unsigned    bps;    /* bytes per block          */
  46.     char        spau;   /* blocks per allocation unit       */
  47.     unsigned    nrs;    /* number of reserved blocks        */
  48.     char        nfat;   /* number of file allocation tables */
  49.     unsigned    rent;   /* number of root directory entries */
  50.     unsigned    tns;    /* total number of blocks       */
  51.     char        mdb;    /* media descriptor byte        */
  52.     unsigned    nsfat;  /* number of blocks per FAT     */
  53.     }   bpb,
  54.         bpb_tab [ ];
  55.  
  56. /*
  57.  * pointer to the request header
  58.  */
  59.  
  60. extern struct   request_header
  61.     {
  62.     char        rlength;
  63.     char        unit;
  64.     char        command;
  65.     unsigned    status;
  66.     char        reserved    [ 8 ];
  67.     char        data;
  68.     union
  69.         {
  70.         char far        *transfer;
  71.         char            media_change_code;
  72.         }   b14;
  73.     union
  74.         {
  75.         struct parm_block far   *bpb;
  76.         struct
  77.             {
  78.             unsigned        count;
  79.             unsigned        start;
  80.             } io;
  81.         }   b18;
  82.     } far   *rh;
  83.  
  84. extern int ram_disk [ ];
  85.  
  86.